/**
 * 
 */
package br.com.skynix.tcmc.model.servico;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import org.hibernate.annotations.ForeignKey;

import br.com.skynix.tcmc.base.model.EntidadeDominio;
import br.com.skynix.tcmc.model.rh.Empresa;

/**
 * @author davi
 * 
 */
@Entity
@Table(name = "tb_plano")
public class Plano extends EntidadeDominio {
	@ManyToOne
	@JoinColumn(name = "id_tipo_plano_fk", nullable = true,
			referencedColumnName = "id")
	@ForeignKey(name = "FK001_plano")
	private TipoPlano tipoPlano;

	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_empresa_fk", nullable = false,
			referencedColumnName = "id")
	@ForeignKey(name = "FK002_plano")
	private Empresa empresa;

	@Column(nullable = true, precision = 15, scale = 2)
	private BigDecimal valorPortifolio;

	@Column(nullable = true, precision = 15, scale = 2)
	private BigDecimal valorOfertaPme;

	@Column(nullable = true, precision = 15, scale = 2)
	private BigDecimal valorOfertaVip;

	@Column(nullable = true, columnDefinition = "TEXT DEFAULT NULL")
	private String outrasOpcoes;

	/**
	 * @return the tipoPlano
	 */
	public TipoPlano getTipoPlano() {
		return tipoPlano;
	}

	/**
	 * @param tipoPlano the tipoPlano to set
	 */
	public void setTipoPlano(TipoPlano tipoPlano) {
		this.tipoPlano = tipoPlano;
	}

	/**
	 * @return the empresa
	 */
	public Empresa getEmpresa() {
		return empresa;
	}

	/**
	 * @param empresa the empresa to set
	 */
	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	/**
	 * @return the valorPortifolio
	 */
	public BigDecimal getValorPortifolio() {
		return valorPortifolio;
	}

	/**
	 * @param valorPortifolio the valorPortifolio to set
	 */
	public void setValorPortifolio(BigDecimal valorPortifolio) {
		this.valorPortifolio = valorPortifolio;
	}

	/**
	 * @return the valorOfertaPme
	 */
	public BigDecimal getValorOfertaPme() {
		return valorOfertaPme;
	}

	/**
	 * @param valorOfertaPme the valorOfertaPme to set
	 */
	public void setValorOfertaPme(BigDecimal valorOfertaPme) {
		this.valorOfertaPme = valorOfertaPme;
	}

	/**
	 * @return the valorOfertaVip
	 */
	public BigDecimal getValorOfertaVip() {
		return valorOfertaVip;
	}

	/**
	 * @param valorOfertaVip the valorOfertaVip to set
	 */
	public void setValorOfertaVip(BigDecimal valorOfertaVip) {
		this.valorOfertaVip = valorOfertaVip;
	}

	/**
	 * @return the outrasOpcoes
	 */
	public String getOutrasOpcoes() {
		return outrasOpcoes;
	}

	/**
	 * @param outrasOpcoes the outrasOpcoes to set
	 */
	public void setOutrasOpcoes(String outrasOpcoes) {
		this.outrasOpcoes = outrasOpcoes;
	}
}
